Modern computer systems are realized by the interconnection of various components including processors, memory devices, peripheral devices and so forth. To enable communication between these different components, various links may be present to interconnect one or more of the devices together. Systems can include many different types of interconnects or links. Typically, there is a given communication protocol for each particular type of link, and communications occurring on such link are according to this protocol.
In general, a communication protocol provides for a relatively standard manner of communicating information, e.g., by way of data packets that are formed in one agent for communication to another agent. Typical data packets include a so-called header portion that may include command and other control information and a payload portion that includes data associated with the packet. Typical communication protocols for point-to-point communication in shared memory multiprocessor systems provide for a fixed data packet size. However, such fixed data packet size can unnecessarily consume interconnect bandwidth. Assume for example that a communication protocol dictates that a data packet size is a cache line size. The most common of cache line sizes in use are either 64 bytes or 128 bytes. However, if an agent seeks to send a lesser amount of bytes, e.g., 8 bytes, the full 64 or 128 byte data packet size is still transmitted, thus needlessly consuming bandwidth.